package com.internetCafes.spms.common.utils.entity.page;


import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.nlpcn.commons.lang.util.StringUtil;
import org.springframework.beans.BeanUtils;

public class PageItemUtil {

    /**
     * 分页结果数据封装，将需要的数据复制到新的实体类中
     *
     * @param pagePo 分页数据库查询数据
     * @param pageVo 需要数据的vo实体类
     */
    public static <T> PageItemVO<T> toPageItemVO(Page<?> pagePo, PageItemVO<T> pageVo) {
        BeanUtils.copyProperties(pagePo, pageVo);
        return pageVo;
    }

    /**
     * 分页请求参数中排序配置获取
     *
     * @param dto          请求参数
     * @param queryWrapper queryWrapper
     */
    public static void order(PageItemDTO<?> dto, QueryWrapper<?> queryWrapper) {
        // 排序
        if (StringUtil.isNotBlank(dto.getOrderBy())) {
            if ("desc".equals(dto.getInOrder())) {
                queryWrapper
                        .orderByDesc(com.internetCafes.spms.common.utils.StringUtils.HumpToUnderline(dto.getOrderBy()));
            } else {
                queryWrapper
                        .orderByAsc(com.internetCafes.spms.common.utils.StringUtils.HumpToUnderline(dto.getOrderBy()));
            }
        } else {
            queryWrapper.orderByDesc("id");
        }
    }
}
